home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 4 / Macwelt DVD 4.cdr / Entwickler / Mac-OS / oxygen / oxygen.app / Contents / Resources / Java / jh.jar / javax / help / SwingHelpUtilities.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-06-24  |  4.9 KB  |  161 lines

  1. package javax.help;
  2.  
  3. import java.beans.PropertyChangeEvent;
  4. import java.beans.PropertyChangeListener;
  5. import java.io.BufferedInputStream;
  6. import java.io.ByteArrayOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.lang.reflect.Method;
  10. import javax.swing.ImageIcon;
  11. import javax.swing.LookAndFeel;
  12. import javax.swing.UIDefaults;
  13. import javax.swing.UIManager;
  14.  
  15. public class SwingHelpUtilities implements PropertyChangeListener {
  16.    private static UIDefaults uiDefaults = null;
  17.    private static SwingHelpUtilities myLAFListener = new SwingHelpUtilities();
  18.    static Object basicOnItemCursor;
  19.    private static final boolean debug = false;
  20.    // $FF: synthetic field
  21.    static Class class$javax$help$HelpUtilities;
  22.  
  23.    public void propertyChange(PropertyChangeEvent var1) {
  24.       String var2 = var1.getPropertyName();
  25.       if (var2.equals("lookAndFeel")) {
  26.          installLookAndFeelDefaults();
  27.       }
  28.  
  29.    }
  30.  
  31.    static void installUIDefaults() {
  32.       UIDefaults var0 = UIManager.getLookAndFeelDefaults();
  33.       if (uiDefaults != var0) {
  34.          uiDefaults = var0;
  35.          UIManager.removePropertyChangeListener(myLAFListener);
  36.          installLookAndFeelDefaults();
  37.          UIManager.addPropertyChangeListener(myLAFListener);
  38.       }
  39.  
  40.    }
  41.  
  42.    static void installLookAndFeelDefaults() {
  43.       LookAndFeel var0 = UIManager.getLookAndFeel();
  44.       UIDefaults var1 = UIManager.getLookAndFeelDefaults();
  45.       debug("installLookAndFeelDefaults - " + var0);
  46.       if (var0 != null && var1 != null) {
  47.          if (var0.getID().equals("Motif")) {
  48.             installMotifDefaults(var1);
  49.          } else if (var0.getID().equals("Windows")) {
  50.             installWindowsDefaults(var1);
  51.          } else {
  52.             installMetalDefaults(var1);
  53.          }
  54.       }
  55.  
  56.       debug("verifing UIDefaults; HelpUI=" + var1.getString("HelpUI"));
  57.    }
  58.  
  59.    private static Object createIcon(String var0, String var1) {
  60.       ClassLoader var2 = (class$javax$help$HelpUtilities == null ? (class$javax$help$HelpUtilities = class$("javax.help.HelpUtilities")) : class$javax$help$HelpUtilities).getClassLoader();
  61.  
  62.       try {
  63.          Class[] var3 = new Class[0];
  64.          Object[] var4 = new Object[0];
  65.          Class var5;
  66.          if (var2 == null) {
  67.             var5 = Class.forName(var0);
  68.          } else {
  69.             var5 = var2.loadClass(var0);
  70.          }
  71.  
  72.          Method var6 = var5.getMethod(var1, var3);
  73.          Object var7 = var6.invoke((Object)null, var4);
  74.          return var7;
  75.       } catch (Exception var8) {
  76.          return null;
  77.       }
  78.    }
  79.  
  80.    private static void installBasicDefaults(UIDefaults var0) {
  81.       String var1 = "javax.help.plaf.basic.";
  82.       Object[] var2 = new Object[]{"HelpUI", var1 + "BasicHelpUI", "HelpTOCNavigatorUI", var1 + "BasicTOCNavigatorUI", "HelpIndexNavigatorUI", var1 + "BasicIndexNavigatorUI", "HelpSearchNavigatorUI", var1 + "BasicSearchNavigatorUI", "HelpContentViewerUI", var1 + "BasicContentViewerUI", "HelpOnItemCursor", basicOnItemCursor};
  83.       var0.putDefaults(var2);
  84.    }
  85.  
  86.    private static void installMetalDefaults(UIDefaults var0) {
  87.       installBasicDefaults(var0);
  88.    }
  89.  
  90.    private static void installWindowsDefaults(UIDefaults var0) {
  91.       installBasicDefaults(var0);
  92.    }
  93.  
  94.    private static void installMotifDefaults(UIDefaults var0) {
  95.       installBasicDefaults(var0);
  96.    }
  97.  
  98.    public static ImageIcon getImageIcon(Class var0, String var1) {
  99.       if (var1 == null) {
  100.          return null;
  101.       } else {
  102.          byte[][] var2 = new byte[1][];
  103.  
  104.          try {
  105.             InputStream var3 = var0.getResourceAsStream(var1);
  106.             if (var3 == null) {
  107.                return null;
  108.             }
  109.  
  110.             BufferedInputStream var4 = new BufferedInputStream(var3);
  111.             ByteArrayOutputStream var5 = new ByteArrayOutputStream(1024);
  112.             var2[0] = new byte[1024];
  113.  
  114.             int var6;
  115.             while((var6 = var4.read(var2[0])) > 0) {
  116.                var5.write(var2[0], 0, var6);
  117.             }
  118.  
  119.             var4.close();
  120.             var5.flush();
  121.             var2[0] = var5.toByteArray();
  122.          } catch (IOException var7) {
  123.             System.err.println(var7.toString());
  124.             return null;
  125.          }
  126.  
  127.          if (var2[0] == null) {
  128.             System.err.println(var0.getName() + "/" + var1 + " not found.");
  129.             return null;
  130.          } else if (var2[0].length == 0) {
  131.             System.err.println("warning: " + var1 + " is zero-length");
  132.             return null;
  133.          } else {
  134.             return new ImageIcon(var2[0]);
  135.          }
  136.       }
  137.    }
  138.  
  139.    private static void debug(Object var0) {
  140.    }
  141.  
  142.    // $FF: synthetic method
  143.    static Class class$(String var0) {
  144.       try {
  145.          return Class.forName(var0);
  146.       } catch (ClassNotFoundException var2) {
  147.          throw new NoClassDefFoundError(var2.getMessage());
  148.       }
  149.    }
  150.  
  151.    // $FF: synthetic method
  152.    static Object access$000(String var0, String var1) {
  153.       return createIcon(var0, var1);
  154.    }
  155.  
  156.    static {
  157.       installUIDefaults();
  158.       basicOnItemCursor = new 1();
  159.    }
  160. }
  161.